﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using DTO;

namespace DAO
{
    public class DAO_LoaiQuanHe
    {
        private DataServices data = new DataServices();
        public DataTable getAllQuanHe()
        {
            try
            {
                String sql = "SELECT * FROM " + DTO_LoaiQuanHe.TB_Name;
                return data.executeGetDataTable(sql);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message, ex);
            }
        }

        public bool insertQuanHe(DTO_LoaiQuanHe quanHe)
        {
            bool result = false;
            try
            {
                String sql = "INSERT INTO " + DTO_LoaiQuanHe.TB_Name
                                    + " ( " + DTO_LoaiQuanHe.TENQUANHE + " ) VALUES (@" + DTO_LoaiQuanHe.TENQUANHE + " ) ";
                SqlParameter p1 = new SqlParameter(DTO_LoaiQuanHe.TENQUANHE, quanHe.TenLoaiQuanHe);
                result = data.executeUpdate(sql, p1);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message, ex);
            }

            return result;
        }

        public bool updateQuanhe(DTO_LoaiQuanHe quanHe)
        {
            bool result = false;
            try
            {
                String sql = "UPDATE " + DTO_LoaiQuanHe.TB_Name
                                    + " SET " + DTO_LoaiQuanHe.TENQUANHE + " =@" + DTO_LoaiQuanHe.TENQUANHE
                                    + " WHERE " + DTO_LoaiQuanHe.MAQUANHE + " =@" + DTO_LoaiQuanHe.MAQUANHE;
                SqlParameter p1 = new SqlParameter(DTO_LoaiQuanHe.TENQUANHE, quanHe.TenLoaiQuanHe);
                SqlParameter p2 = new SqlParameter(DTO_LoaiQuanHe.MAQUANHE, quanHe.MaLoaiQuanHe);
                result = data.executeUpdate(sql, p1, p2);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message, ex);
            }

            return result;
        }
        public bool deletequanHe(DTO_LoaiQuanHe quanHe)
        {
            bool result = false;
            try
            {
                String sql = "deleteLoaiQuanHe";
                SqlParameter p1 = new SqlParameter(DTO_LoaiQuanHe.MAQUANHE, quanHe.MaLoaiQuanHe);
                result = data.updateFormProcedure(sql, p1);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message, ex);
            }

            return result;
        }

        public DataTable getQuanHeByName(string name)
        {
            try
            {
                String sql = "SELECT * FROM " + DTO_LoaiQuanHe.TB_Name + " WHERE "
                                    + DTO_LoaiQuanHe.TENQUANHE + " LIKE @" + DTO_LoaiQuanHe.TENQUANHE;
                SqlParameter p1 = new SqlParameter(DTO_LoaiQuanHe.TENQUANHE, "%" + name + "%");
                return data.executeGetDataTable(sql, p1);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message, ex);
            }
        }
    }

}
